Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP Changelog #527

Closed
wants to merge 61 commits into from
Closed

WIP Changelog #527

wants to merge 61 commits into from

Conversation

GreemDev
Copy link
Member

@GreemDev GreemDev commented Jan 16, 2025

WIP changelog for: 1.2.82

Significant changes include:
DualSense/DualShock 4 LED customization (by @Otozinclus, UI by @GreemDev),
PPTC Profiles (by @LotP1),
Dynamic RPC support for select games (system by @GreemDev, many more games added by @piplup55)

Merged PRs in this release (in the order they were merged):
#572, #583, #568, #578, #569, #589, #370, #590, #599, #592, #601, #614, #612, #625, #624, #630, #618, #638, #642, #615,
#649

UI:

  • Game compatibility information has been put underneath the version in the List view.
    • It is clickable, and opens the game's entry in the compatibility list.
    • You can hover it to see the list of labels that the game has, and for a description as to what the status means.
  • In Grid view you have access to a new option on right click, Show Game Stats.
    • This shows all of the information previously only visible on List view in a popup dialog.
    • Game compatibility information is also clickable in this popup.
  • Fix dialog symbols being reversed on Right to Left languages.
  • The Mod Manager is now capable of displaying mods available for installed DLC content.
  • Background Update Checker mode
    • Checks for updates on startup and shows a button in the lower-right of the window next to the Firmware Version when not in a game.
  • Pretty Atmosphère mod names
  • Added --backend-threading argument for launching games via shortcut/command line. (Added --backend-threading parameter for launching games via shortcut #599)
  • Added the following games to Discord RPC asset images:
    • Arcade Archives VS. SUPER MARIO BROS.
    • Bluey: The Video Game
    • Brawlhalla
    • Divinity Original 2 - Definitive Edition
    • Minecraft
    • Monopoly
    • Risk
    • Stardew Valley
    • Super Bomberman R
    • Titan Quest
    • Valkyria Chronicles 4

CPU:

  • PPTC Profiles (PPTC Profiles #370)
    • Allows games with previously unsupported ExeFS mods to use the PPTC system, without causing incompatibilities with other sets of ExeFS mods or the base game's caches.
    • Improves the boot times of your games and drastically reduces the amount of repeated work your system needs to do every time you launch a game.
    • The most notable benefit with this change is PPTC support with the best way to play Tears of the Kingdom in an emulator: the Optimizer!
  • JIT Cache Regions (Add Jit Cache Regions! #615)
    • Instead of pre-allocating 2GB of memory for the JIT cache, it is now divided into many regions of 256MB.
    • If more than 256MB is needed, it will create a new region.
      • This can keep going, past 2GB total.
    • This allows games that need more than 2GB for JIT Cache to continue and not crash, and allows for games which don't need that much JIT cache to be lighter on memory usage.
    • This has nothing to do with disk/hard drive/SSD usage.

I18N:

Improved Simplified Chinese translation (#568, #578, #590, #642)
Updated Korean translation (#624)

HLE:

  • Play Report Analysis
    • Allows you to listen to values in Play Reports and format them in a multitude of ways.
      • Currently only used for Dynamic Discord RPC, on specific games.
      • You can see the games that support it by right-clicking on the game in Ryujinx and clicking "Show Game Info."

LDN:

Headless:

  • Default to Vulkan instead of OpenGL

Nerd Zone:

  • Raised minimum required Windows 10 version.
    • This mostly has no effect, since versions which fall under the threshold can't even boot the app anymore due to .NET 9 CET Enforcement.
  • Removed all usages of var everywhere in the project.
  • Use target-typed new (i.e. byte someByte = new()) everywhere in the project.
  • Use collection expressions everywhere in the project.
  • Collapsed all GeneratedRegexes into a common utility class.
  • Here's the implementation for the Play Report Analyzer system.

GreemDev and others added 30 commits November 19, 2024 10:32
This is an implementation of the TPIDR2_EL0 register. There may be more
potential use-cases for this register not included in this PR, but this
implements the use-case seen in SuperTuxKart.
This should make it so that any changes made to ldn and documentation
related files should be auto-labeled
This makes it so that instead of the files you download being
`sdl2-ryujinx-headless` they are now `nogui-ryujinx`in the release (and
canary) artifacts
This should hopefully make it clearer whether or not you're using
canary.

Changelog:
- Changed github workflows to have "canary" in the zip files
- Added `App.FullAppName` in the about section, so that it's clear in
there too
- Changed log name for canary builds to
`Ryujinx_Canary_{version}_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}.log`
(normal builds should still be
"Ryujinx_{version}_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}.log)
Hello any fellow developers that may be reading this. Whenever you add
any new locales to `en_US.json`, please make sure to add them to the
rest of the locale files. I will not always be there to add them myself.
More up to date build of the JIT Sparse PR for continued development.
JIT Sparse Function Table was originally developed by riperiperi for the
original Ryujinx project, and decreased the amount of layers in the
Function Table structure, to decrease lookup times at the cost of
slightly higher RAM usage.
This PR rebalances the JIT Sparse Function Table to be a bit more RAM
intensive, but faster in workloads where the JIT Function Table is a
bottleneck. Faster RAM will see a bigger impact and slower RAM (DDR3 and
potentially slow DDR4) will see a slight performance decrease.
This PR also implements a base for a PPTC profile system that could
allow for PPTC with ExeFS mods enabled in the future.
This PR also potentially fixes a strange issue where Avalonia would time
out in some rare instances, e.g. when running ExeFS mods with TotK and a
strange controller configuration.

---------

Co-authored-by: Evan Husted <[email protected]>
Rebased @jcm93's refreshinterval branch:
https://github.com/jcm93/Ryujinx/tree/refreshinterval

The option is placed under System/Hacks. Disabled, it's the default
Ryujinx behavior. Enabled, the behavior is shown in the attached
screenshots. If a framerate is too high or low, you can adjust the value
where you normally toggle VSync on and off. It will also cycle through
the default on/off toggles.

Also, in order to reduce clutter, I made an adjustment to remove the
target FPS and only show the percentage.

---------

Co-authored-by: jcm <[email protected]>
This allows the "Mii Edit Applet" dropdown to be localized ( I already
went ahead and localized French )
This allows the Enter key to be bound to a button when using the
Avalonia UI.
A couple of games have random crashing with the JIT Sparse Ftable changes, and it seems to have been caused by an insufficient int size returned by `AddressTableLevel#GetValue(ulong address)`.
It was 32 bits (Int32), but the GiantBlock (which is the current address table impl) uses potentially 36 bits for the first level.
#331)

These changes allow Mario Kart Live: Home Circuit (v2.0.0) to boot into
menus. Kart functionality has not been implemented and will not work.

Version 1.0.0 is currently unsupported due to unimplemented ARM
registers. I plan on addressing this issue at a later date.


### Here is a list of the implemented and stubbed services in this PR:
#### Implemented:
Ldn.Lp2p.IServiceCreator: 0 (CreateNetworkService)
Ldn.Lp2p.IServiceCreator: 8 (CreateNetworkServiceMonitor)
Ldn.Lp2p.ISfService: 0 (Initialize)
Ldn.Lp2p.ISfServiceMonitor: 0 (Initialize)
Ldn.Lp2p.ISfServiceMonitor: 256 (AttachNetworkInterfaceStateChangeEvent)
Ldn.Lp2p.ISfServiceMonitor: 328 (AttachJoinEvent)
#### Stubbed:
Ldn.Lp2p.ISfService: 768 (CreateGroup)
Ldn.Lp2p.ISfService: 1536 (SendToOtherGroup)
Ldn.Lp2p.ISfService: 1544 (RecvFromOtherGroup)
Ldn.Lp2p.ISfServiceMonitor: 288 (GetGroupInfo)
Ldn.Lp2p.ISfServiceMonitor: 296 (GetGroupInfo2)
Ldn.Lp2p.ISfServiceMonitor: 312 (GetIpConfig)
This adds the missing Cabinet Applet, which allows for formatting
Amiibos and changing their names.
@Ryubing Ryubing locked as spam and limited conversation to collaborators Jan 16, 2025
@github-actions github-actions bot added audio Affects Audio playback during emulation cpu An issue with ARMeilleure, the JIT, or Hypervisor gpu Affects GPU emulation graphics-backend:opengl Affects the OpenGL Graphics backend graphics-backend:vulkan Affects the Vulkan Graphics backend gui Affects the Avalonia UI or translations. horizon Affects the Horizon OS HLE components. infra Updates to dependencies ldn Affects the LDN functionality labels Jan 16, 2025
@GreemDev GreemDev closed this Jan 18, 2025
@GreemDev GreemDev deleted the release branch January 18, 2025 16:08
@GreemDev GreemDev changed the title 1.2.80 [JUST FOR WRITING THE CHANGELOG, DO NOT MERGE] WIP Changelog Jan 22, 2025
@GreemDev GreemDev removed audio Affects Audio playback during emulation cpu An issue with ARMeilleure, the JIT, or Hypervisor gpu Affects GPU emulation graphics-backend:opengl Affects the OpenGL Graphics backend graphics-backend:vulkan Affects the Vulkan Graphics backend gui Affects the Avalonia UI or translations. horizon Affects the Horizon OS HLE components. infra Updates to dependencies ldn Affects the LDN functionality labels Feb 5, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.